package cn.fl.settlement.service;

import cn.cmm.base.framework.exception.BaseException;
import cn.fl.project.condition.PrjPrdPaySchDQueryCondition;
import cn.fl.project.dto.PrjPrdPaySchDDTO;
import cn.fl.settlement.vo.PaySchDSettlePageVO;

import java.util.List;

public interface ISettleFeeService {

    /**
     * 流程附加页面
     * 查询结清项列表
     * @param applyId
     * @param pInstId
     * @return
     * @throws BaseException
     */
    List<PaySchDSettlePageVO> searchSettleItemList(Long applyId, String pInstId) throws BaseException;

    /**
     * 查询PRJ0040结清费用项列表数据
     * @param condition
     * @return
     * @throws BaseException
     */
    List<PaySchDSettlePageVO> searchSettleFeeList(PrjPrdPaySchDQueryCondition condition) throws BaseException;

    /**
     * 根据主键id查询结清费用项数据
     * @param condition
     * @return
     * @throws BaseException
     */
    PaySchDSettlePageVO querySettleFeeById(PrjPrdPaySchDQueryCondition condition) throws BaseException;

    /**
     * 新增结清费用项
     * @param pInstId 流程实例ID
     * @param entity
     * @throws BaseException
     */
    void addSettleFeeFlow(String pInstId, PrjPrdPaySchDDTO entity) throws BaseException;

    /**
     * 修改结清费用项
     * @param pInstId 流程实例ID
     * @param entity
     * @throws BaseException
     */
    void modifySettleFeeFlow(String pInstId, PrjPrdPaySchDDTO entity) throws BaseException;

    /**
     * 删除结清费用项
     * @param pInstId 流程实例ID
     * @param entity
     * @throws BaseException
     */
    void removeSettleFeeFlow(String pInstId, PrjPrdPaySchDDTO entity) throws BaseException;
}
